﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ForrajeriaBCL;
using ForrajeriaDB;

namespace ForrajeriaFRONT.ABM
{
    public partial class TipoDocumento : System.Web.UI.Page
    {
        private TipoDocumentoBCL objBC;
        private TipoDocumentoMO objEditar;

        public TipoDocumento() //constructor
        {
            objBC = new TipoDocumentoBCL();


        }
        protected void Page_Load(object sender, EventArgs e)
        {
            ((Label)this.Master.FindControl("lblTitulo")).Text = "Tipo de Documento";

            cargarLista();
            lblResultado.Text = "";
            btnGuardar.Focus();
        }
        protected void cargarLista()
        {
            gridDatos.DataSource = null;
            List<TipoDocumentoMO> lista = objBC.GetAll();
            gridDatos.DataSource = lista;
            gridDatos.DataBind();
        }

        #region Eventos BOTONES


        protected void gridDatos_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            txtNombre.Text = "";
            gridDatos.SelectedIndex = -1;
            int ind = e.RowIndex;
            objEditar = new TipoDocumentoMO();
            objEditar.Codigo = Int32.Parse(gridDatos.Rows[ind].Cells[0].Text);
            objEditar.TipoDocumento1 = gridDatos.Rows[ind].Cells[1].Text;
            string resu = objBC.Eliminar(objEditar);

            if (resu != "1")
            {
                lblResultado.Text = resu;
                lblResultado.ForeColor = System.Drawing.Color.Red;
            }

            cargarLista();
        }



        protected void gridDatos_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            int ind = e.NewSelectedIndex;
            //****************************** CREO EL OBJETO NUEVO Y LE SETEO VALORES**************************************

            objEditar = new TipoDocumentoMO();
            objEditar.Codigo = Int32.Parse(gridDatos.Rows[ind].Cells[0].Text);
            objEditar.TipoDocumento1 = gridDatos.Rows[ind].Cells[1].Text;
            ViewState["objEdi"] = objEditar;  //utilizo un ViewState para mantener la persistencia del objeto durante POSTBACK

            //************************************************************************************************************
            txtNombre.Text = gridDatos.Rows[ind].Cells[1].Text;

        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            objEditar = (TipoDocumentoMO)ViewState["objEdi"];
            if (objEditar == null) // si objEditar es nulo esta intentando INSERT 
            {
                objEditar = new TipoDocumentoMO(null, txtNombre.Text); //TipoDocumentoMO se moodifico para soportar nulleable int 
                string resu = objBC.Adicionar(objEditar);
                if (resu == "1")
                {
                    lblResultado.ForeColor = System.Drawing.Color.Blue;
                    ValidationSummary1.ShowSummary = true;
                    lblResultado.Text = "Guardado con Exito";
                    cargarLista();

                }
                else
                {
                    lblResultado.ForeColor = System.Drawing.Color.Red;
                    ValidationSummary1.ShowSummary = true;
                    lblResultado.Text = resu;

                }
            }
            else // sino es UPDATE
            {
                TipoDocumentoMO objNuevo = new TipoDocumentoMO(objEditar.Codigo, txtNombre.Text); //creo el objeto nuevo con el valor del textbox 

                string resu = objBC.Actualizar(objNuevo, objEditar);

                if (resu == "1")
                {
                    lblResultado.ForeColor = System.Drawing.Color.Blue;
                    ValidationSummary1.ShowSummary = true;
                    lblResultado.Text = "Guardado con Exito";
                    cargarLista();


                }
                else
                {
                    lblResultado.ForeColor = System.Drawing.Color.Red;
                    lblResultado.Text = resu;

                }

            }
            ViewState["objEdi"] = null;
            gridDatos.SelectedIndex = -1; //deselecciono la fila si estaba seleccionada
            txtNombre.Text = "";
        }


        #endregion

    }
}